package com.hspedu.map_;

import java.util.HashMap;

/**
 * @Author Stringzhua
 * @Date 2024/3/12 19:25
 * description:
 */
@SuppressWarnings("all")
public class Map_ {
    public static void main(String[] args) {
        //Map接口实现类的特点,使用实现类HashMap
        //1.Map与Collection并列存在.用于保存具有映射关系的数据:Key-Value(双列元素)
        //2.Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中
        //3.Map中的key不允许重复,原因和HashSet一致
        //4.Map中的value是可以重复的
        //5.Map的key可以为null,value也可以为null,注意:key为null,key只能有一个,value为null,value可以为多个
        //6.常用String类作为Map的key
        //7.key和value之间存在单向一对一关系,即通过指定的key总能找到对应的value
        HashMap map = new HashMap();
        map.put("no1", "韩顺平");//key-value
        map.put("no2", "张无忌");//key-value
        map.put("no1", "张三丰");//key-value  [替换机制]当有相同的key时,就等价于替换
        // 将原来的no1中的韩顺平替换张三丰
        map.put("no3", "张三丰");//key-value
        map.put(null, null);
//        map.put(null,"abc");//等价替换
        map.put("no4", null);//key-value
        map.put("no5", null);//key-value

        map.put(1, "赵敏");//k-v
        map.put(new Object(), "金毛狮王");//k-v

        System.out.println("map = " + map);//添加顺序和取出顺序不一致
        //通过get方法传入key,会返回对应的value
        System.out.println(map.get("no2"));//张无忌
    }
}
